package com.gsoe.problem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gsoe.base.model.PageResult;
import com.gsoe.problem.dto.ProblemDTO;
import com.gsoe.problem.dto.ProblemParamDTO;
import com.gsoe.problem.po.Problem;
import com.gsoe.problem.po.RandProblem;
import com.gsoe.problem.vo.ProblemNumberVO;
import com.gsoe.problem.vo.ProblemRandomVO;
import com.gsoe.problem.vo.ProblemVO;
import com.gsoe.problem.vo.UploadProblemVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


/**
 * <p>
 * 题目表 服务类
 * </p>
 *
 * @author xiaoma
 * @since 2024-10-27
 */
public interface ProblemService extends IService<Problem> {

    void addOrUpdateProblem(ProblemDTO problemDTO);

    PageResult<ProblemVO> getProblemList(ProblemParamDTO problemParamDTO);

    List<Long> createRandProblemList(RandProblem randProblemList);

    ProblemRandomVO getRandomProblem(ProblemParamDTO problemParamDTO);

    ProblemVO getProblemById(Long id);

    void delByid(Long id);

    List<Integer> getTypeNumberList();

    UploadProblemVO uploadProblem(MultipartFile file, Boolean repeatSkip);

    List<ProblemNumberVO> getProblemNumberByDiff(Long userId);
}
